package cn.edu.hnu.gpg.service;

import cn.edu.hnu.gpg.entity.UploadedFile;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;

import java.io.IOException;
import java.util.List;
import java.util.Map;

public interface UploadedFileService {

    /**
     * 用于记录用户上传的文件信息
     * @param path 文件的绝对路径
     * @param user_id 上传用户的ID
     * @return 是否记录成功
     */
    boolean createUploadFile(String path ,int user_id);

    Integer uploadFile(String dirPath, String fileName, MultipartFile file, int userId) throws IOException;

    void replaceFile(String dirPath, Integer uploadedFileId, String fileName, MultipartFile file) throws IOException;

    /**
     * 获取某个用户上传的所有文件目录
     * @param user_id 文件上传用户的用户ID
     * @return 文件列表
     */
    List<UploadedFile> getAllFile(int user_id);

    UploadedFile queryFileInfo(Integer fileId);

    /**
     * 删除某个文件
     * @param path 文件存储的绝对路径
     * @return 是否删除成功
     */
    boolean deleteFile(String path);
}
